
The MatterWaves Operator lets you create amazing particle animations based
on multiple materials and maps that let you control every aspect of each
particle. MatterWaves is a highly advanced particle system operator for
thinkingParticles that offers features you usually find only in very high
end animation packages.
To guarantee a flawless integration into 3ds Max, many new programming
techniques had to be invented to accommodate what MatterWaves brings to
the table. One of the amazing new technologies exclusively developed for
MatterWaves is called Multi-Layer Particle Control (MLPC). This technology
makes it possible to generate particle emitters based on multiple material
maps at the same time. It is this advanced technology that sets this particular
particle Generator apart from anything else available.
MatterWaves is a time based particle system and as such, it usually does not use frames as its timing base. Nearly every parameter in MatterWaves is based on time (seconds) so be sure to remember this when you create your animations using this operator.
ON - (Bool) This input data
stream determines whether the operator is considered 'on' or 'off'. You
can connect other operators to this input channel such as a Bool
Helper to activate/deactivate the whole operator.
Time - (Time) This input data stream is used to define the local
time for the operator when the user wants to override the default system
time.
Particle - (Particle) This input data stream reads in the currently
selected particle group to the MatterWaves Operator.
Life Span - (Life Span) This input data stream supplies the particle
life span for all particles created within the MatterWaves Operator.
Speed - (Speed) This input data stream sets the speed for the
particles generated within the MatterWaves Operator.
Direction - (Direction) This input data stream sets the directional
vector for the emission of the particles created within the MatterWaves
Operator.
Spin - (Spin) This input data stream is used to provide the angular
direction value for the born particles to use for their motion.
Size - (Size) This input data stream sets the size in world units
of the particles created within the MatterWaves Operator.
Mass - (Mass) This input data stream sets the mass of the particles
created within the MatterWaves Operator.
Alignment - (Alignment) This input data stream is used to set
the initial alignment of the particles when they are born.
Node - (Node) This input data stream is used to feed in an object
to be used as the emission source for the MatterWaves Operator. If you
input a node from this connection, it will override the selection button
within the Pick Object Based Emitter.
Attack - (Scalar) This input data stream is used to override the
Time(s) Attack spinner in the MatterWaves rollout.
Sustain - (Scalar) This input data stream is used to override
the Time(s) Sustain spinner in the MatterWaves rollout.
Attack & Sustain Gradient - (Alpha Gradient) This input data
stream is for future usage (i.e. - it is not currently active) and will
be used to override the gradient ramp that controls the Attack and Sustain
gradient within the MatterWaves rollout.
Birth Type - (Integer) This input data stream takes an integer
value that represents the emission type the particles will use. Valid
input values are 0 through 2, where:
Count - (Integer) This input
data stream is used to override the Count spinner within the MatterWaves
rollout.
Rate - (Scalar) This input data stream is used to override the
Particles/s spinner within the MatterWaves rollout.
Shot - (Integer) This input data stream is used to override the
Pistol Shot spinner within the MatterWaves rollout.
Per Emitter - (Bool) This input data stream is used to override
the Per Emitter checkbox state within the MatterWaves rollout.
Per Emitter Activation - (Bool) This input data stream is used
to override the Per Emitter Activation checkbox state within the MatterWaves
rollout.
Life Variation - (Scalar) This input data stream is used to override
the Variation % spinner value for the Life Span (s) within the MatterWaves
rollout.
Life Variation Mask - (Alpha Gradient) This input data stream
is for future usage (i.e. - it is not currently active) and will be used
to override the gradient ramp that controls the Life Span (s) gradient
within the MatterWaves rollout.
Life Mask - (Texture Map) This input data stream is used to override
the material map used within the Life Span (s) Mask.
Life Mask ON - (Bool) This input data stream is used to override
the On/Off toggle for the Life Span (s) Mask control. A True condition
turns the mask on, while a False condition turns it off.
Speed Variation - (Scalar) This input data stream is used to override
the Variation % spinner value for the Speed settings within the MatterWaves
rollout.
Speed Mask Gradient - (Alpha Gradient) This input data stream
is for future usage (i.e. - it is not currently active) and will be used
to override the gradient ramp that controls the Speed gradient within
the MatterWaves rollout.
Speed Mask - (Texture Map) This input data stream is used to override
the material map used within the Speed Mask.
Speed Mask ON - (Bool) This input data stream is used to override
the On/Off toggle for the Speed Mask control. A True condition turns the
mask on, while a False condition turns it off.
Speed SizeDependence ON - (Bool) This input data stream is used
to override the Size Dep. checkbox state within the MatterWaves rollout.
Speed SizeDependence - (Scalar) This input data stream is used
to override the Size Dep. spinner value within the MatterWaves rollout.
Size Variation - (Scalar) This input data stream is used to override
the Variation % spinner value for the Size settings within the MatterWaves
rollout.
Size Mask Gradient - (Alpha Gradient) This input data stream is
for future usage (i.e. - it is not currently active) and will be used
to override the gradient ramp that controls the Size gradient within the
MatterWaves rollout.
Size Mask - (Texture Map) This input data stream is used to override
the material map used within the Size Mask.
Size Mask ON - (Bool) This input data stream is used to override
the On/Off toggle for the Size Mask control. A True condition turns the
mask on, while a False condition turns it off.
Distance - (Distance) This input data stream is used to override
the Emit Distance spinner within the MatterWaves rollout.
Distance Variation - (Scalar) This input data stream is used to
override the Variation % spinner value for the Emit Distance settings
within the MatterWaves rollout.
Distance Mask Gradient - (Alpha Gradient) This input data stream
is for future usage (i.e. - it is not currently active) and will be used
to override the gradient ramp that controls the Emit Distance gradient
within the MatterWaves rollout.
Distance Mask - (Texture Map) This input data stream is used to
override the material map used within the Emit Distance Mask.
Distance Mask ON - (Bool) This input data stream is used to override
the On/Off toggle for the Emit Distance Mask control. A True condition
turns the mask on, while a False condition turns it off.
Distance Direction - (Integer) This input data stream takes an
integer value that represents the direction offset type the particles
will use. Valid input values are 0 and 1, where:
Motion Inheritance - (Scalar)
This input data stream is used to override the Motion Inheritance % spinner
within the MatterWaves rollout.
Motion Inheritance Variation - (Scalar) This input data stream
is used to override the Variation % spinner value for the Motion Inheritance
% settings within the MatterWaves rollout.
Rotation Inheritance - (Scalar) This input data stream is used
to override the Rotation Inheritance % spinner within the MatterWaves
rollout.
Rotation Inheritance Variation - (Scalar) This input data stream
is used to override the Variation % spinner value for the Rotation Inheritance
% settings within the MatterWaves rollout.
In Viewport - (Scalar) This input data stream is used to override
the In Viewport [%] spinner within the MatterWaves rollout.
Random Seed - (Random Seed) This input data stream is used to
override the Random Seed spinner within the MatterWaves rollout.
Use Material ID - (Bool) This input data stream is used to override
the Mat. ID checkbox state within the Emitter rollout.
Material ID - (Integer) This input data stream is used to override
the Mat. ID spinner value within the Emitter rollout.
Use Smoothing Group - (Bool) This input data stream is used to
override the Sm. Group checkbox state within the Emitter rollout.
Smoothing Group - (Integer) This input data stream is used to
override the Sm. Group spinner value within the Emitter rollout.
Use Selected Faces - (Bool) This input data stream is used to
override the Selected Face checkbox state within the Emitter rollout.
Face Reduce - (Integer) This input data stream is used to override
the Face Reduce spinner value within the Emitter rollout.
Use UV Channel - (Bool) This input data stream is used to override
the Coordinates checkbox state within the Emitter rollout.
UV Channel - (Integer) This input data stream is used to override
the Coordinates spinner value within the Emitter rollout.
Clip UV - (Bool) This input data stream is used to override the
UVW Clipping checkbox state within the Emitter rollout.
U Emitter - (Integer) This input data stream is used to override
the U Emitter spinner value within the Emitter rollout.
V Emitter - (Integer) This input data stream is used to override
the V Emitter spinner value within the Emitter rollout.
Random Distribution - (Bool) This input data stream is used to
override the Random checkbox state within the Emitter rollout.
Show Emitter - (Bool) This input data stream is used to override
the Show checkbox state within the Emitter rollout.
Use Active Emitter Only - (Bool) This input data stream is used
to override the Use Active Emitter Only checkbox state within the Emitter
rollout.
Emit Direction - (Integer) This input data stream takes an integer
value that represents the emit direction method the particles will use.
Valid input values are 0 through 8, where:
Direction Mask - (Texture
Map) This input data stream is used to override the material map used
within the Direction Mask.
Direction Mask ON - (Bool) This input data stream is used to override
the On/Off toggle for the Direction Mask control. A True condition turns
the mask on, while a False condition turns it off.
Direction Mask Intensity - (Scalar) This input data stream is
used to override the Mask Intensity spinner setting in the Emitter rollout.
Max Emit Angle - (Angle) This input data stream is used to override
the Max. Emit Angle spinner setting within the Emitter rollout.
Direction Variation - (Angle) This input data stream is used to
override the Direction Var Deg spinner setting within the Emitter rollout.
Use Material - (Bool) This input data stream is used to override
the Use checkbox state within the Emitter rollout.
Use Lights - (Bool) This input data stream is used to override
the Use Lights checkbox state within the Emitter rollout.
Emitter Mask - (Texture Map) This input data stream is used to
override the material map used within the Emitter Mask.
Emitter Mask ON - (Bool) This input data stream is used to override
the On/Off toggle for the Emitter Mask control. A True condition turns
the mask on, while a False condition turns it off.
Threshold - (Scalar) This input data stream is used to override
the Threshold spinner setting within the Emitter rollout.
Use Color - (Bool) This input data stream is used to override
the Color checkbox state within the Emitter rollout.
Color - (Color) This input data stream is used to override the
Color swatch value within the Emitter rollout.
Color Variation - (Scalar) This input data stream is used to override
the RGB Variation spinner setting within the Emitter rollout.
Particle Axis - (Integer) This input data stream takes an integer
value that represents the Primary Axis the particles will use. Valid input
values are 0 through 2, where:
Invert - (Bool) This input
data stream is used to override the Color checkbox state within the Birth
Alignment rollout.
Axis Rotation - (Angle) This input data stream is used to override
the Rotation deg. spinner setting within the Birth Alignment rollout.
Type - (Integer) This input data stream takes an integer value
that represents the emit direction method the particles will use. Valid
input values are 0 through 7, where:
Direction - (Direction)
This input data stream is used to provide a directional vector for the
particles.
Variation - (Angle) This input data stream is used to provide
variation for the directional vector for the particles.
Color Channel - (Integer) This input data stream is used to override
the Color spinner setting within the Write to Channel rollout.
Map Channel - (Integer) This input data stream is used to override
the UVW spinner setting within the Write to Channel rollout.
UVW Channel - (Integer) This input data stream is used to override
the UVW Channel spinner setting within the Write to Channel rollout.
Object Position Channel - (Integer) This input data stream is
used to override the Object Position spinner setting within the Write
to Channel rollout.
World Position Channel - (Integer) This input data stream is used
to override the World Position spinner setting within the Write to Channel
rollout.
Born Particle - (Particle)
This output data stream sends particle data for newly created particles
to other operators. Every particle birth will activate all rules connected
to this particle data stream. As a result , this can be used to directly
assign a value to the particle.
Particle Frame Counter - (Integer) This output data stream provides
a "counter-like" function that holds the current number of created
particles at the given frame. This counter is reset per frame
and starts over again at 0. As a result, you can use this output data
when you want to trigger other rules based on the creation of a certain
number of particles.
Do not confuse this value with the lifetime particle ID every particle has.
Particle Animation Counter
- (Integer) This output data stream provides a "counter-like"
function that holds the current number of created particles at the given
point in the animation. This counter is NOT reset per frame and accumulates
the total number of particles created over the course of the animation.
As a result, you can use this output data when you want to trigger other
rules based on the creation of a certain number of particles.
Color - (Color) outputs the color value a the emitter position
UVW - (Vector) outputs the current UVW coordinates of the active
emitter
Object Position - (Position) outputs the active emitter position
in local object space
World Position - (Position) outputs the active emitter position
in absolute world space

Pick Object Based Emitter - The MatterWaves Operator must be assigned
to an object before particles can be created. Select the Pick Object Based
Emitter button and then click on the object in the scene that you want
to turn into a MatterWaves particle emitter. You may also use the select
by name feature within 3ds Max if you are not able to easily click on
the desired object in the viewports.
You may also pick multiple objects in one go and add them to the emitter list.
Rem. - When pressed the
selected object will be removed from the list of particle emitters
Group - Before you select an object and create any particles in
the active viewport, think about where
you want to store them. From the Group dropdown list you can select any
particle group that should be used to store the particles that are emitted
from the selected object.
FIRE - You must press the Fire button to enable particle generation.
This button is fully animatable so you can turn the particle emission
on and off throughout the course of your animation. This is easily done
using the standard 3ds Max animation features. A Boolean ON/OFF controller
turns the Fire button on and off; no intermediate values are allowed.
Time (s) - The Fire Timing spinners let you control how the Fire
button behaves. While you can animate the Fire button, it turns the particles
on and off and has no way to slow the number of particles down or speed
their emission up. These spinners help overcome that by increasing or
decreasing the number of generated particles per time interval.
The first spinner represents the Attack time (in seconds).
The second spinner represents the Sustain time (in seconds).
These two spinners work in concert with the gradient beneath them to create
a smooth transition between the states and represents the time needed
to create or destroy particles.
Attack / Sustain - The grayscale gradient below the Time(s) spinners
lets you control the Attack and Sustain curves. As you will see, there
is only one gradient and it was set up that way to provide a smooth transition
between the two particle emission states. The gradient is evenly divided
- the left half controls the Attack timing curve, while the right half
controls the Sustain timing curve.

The Attack side is defined as the timing curve of the
particle emission after the Fire button is activated. Likewise, the Sustain
side is defined as the timing curve of the particle emission after the
Fire button is turned off. An easy way to think of these two parameters
is like a keyboard synthesizer - striking a key and releasing it is analogous
to activating and de-activating the Fire button, and the Attack and Sustain
controls are like the synth’s ability to cause a note to fade in after
striking the key (Attack) or fade out after the key is released (Sustain).
In the case of the Attack timing, you are able to set
the time it takes to create all particles to meet a certain target value
(overall particle count, or particles/sec). Unlike standard 3ds Max particle
systems which use a constant particle rate or a fixed number of particles,
the MatterWaves Operator is able to create an accelerated particle rate
based on a specific time interval. Look at the diagram below:

In this graph, here are the things to consider:
When the Fire button is activated, the Attack timer starts. In this example, the Fire button is activated at Frame 2.
The Time(s) spinner that is set above the gradient controls how long (in seconds) the acceleration curve should take. In this example, it was set to 5 seconds.
The grayscale gradient controls the Attack curve. In this example, it's linear from black to white. A plain black color in the grayscale gradient indicates a zero particle rate while a pure white color will create as many particles as you have set in the Count, Particles/s or Pistol Shot menu section.
In the case of the Sustain timing, you are able to
set the time it takes to destroy all particles after the Fire button is
released. Unlike standard 3ds Max particle systems which use a constant
particle destruction rate, the MatterWaves Operator is able to create
an ramped particle rate to gradually slow down and eliminate the particles
based on a specific time interval.
For example; when you set the Sustain Timing to 2 seconds, MatterWaves
needs 2 seconds to gradually (as set in the grayscale gradient) decrease
the number of particles born until it reaches a complete stop after 2
seconds. It's similar to a damping value for the Fire button when it's
released. All effects or features described in Attack Timing are also
valid for Sustain Timing, it's just the other way around.
The MatterWaves Operator offers many in-depth controls through the different
particle generation methods. However, while some of the creation methods
are similar to other particle systems you might already know, others are
totally unique to MatterWaves and will take some getting used to. To use
MatterWaves' full power you need to understand how it creates particles
and emitters. There are three basic methods to control the number of particles
created in an animation.
Count - As the parameter name implies, the Count option sets the
maximum number of particles allowed at any one time in your animation.
Count is based on the whole animation regardless of any other timing value,
and at no time during the animation will there be more particles alive
than the value set within this spinner. To keep the number of particles
constant once the capacity has been reached, a particle is born only when
another one dies.
Don't get confused when you use Attack and Sustain with this creation method.
In this case, the number of particles will grow continually depending
on the Attack curve, however, the total number of particles will never
exceed the number set in Count. Also worth noting is that if the Per Emitter
checkbox isn't active, any newly born particle will be created randomly
at any free particle emitter.
Particles / (s) - The Particles/s feature is a unique feature
only MatterWaves offers. It sets the maximum number of particles allowed
per second. This value is also based on a complete animation. This means
as long as your animation lasts, the number of particles generated won't
exceed the value set in Particles/s. Depending on the number of particles
and emitters available, you may get emitters that never create a single
particle while the animation lasts. This is not a mistake; the newly born
particles are created by the emitters on a first come, first served basis.
If you want to make sure that every emitter is creating a particle you
may need to increase Particles/s.
Pistol Shot - Another unique feature found in the MatterWaves
Operator is Pistol Shot. Usually standard 3ds Max particle systems are
not able to simulate a free interval creation of particles. While you
can make a broad comparison between the Pistol Shot feature with 3ds Max's
Birth Rate feature, you can't really get the same results from the standard
systems as with Pistol Shot. When you animate the Fire button, MatterWaves
will create on each "button press" the full number of particles
set in this spinner immediately as a burst (except when you use an Attack
curve).
Per Emitter checkbox - This checkbox's name says it all. When
you use MatterWaves' Per Emitter option, the number of particles is controlled
by the number of emitters. As such, each emission point will be treated
identically when it comes to creating new particles, and the number of
particles set in the Particles section (Count, Particles/s, Pistol Shot)
will always be higher than the respective values when you use the Per
Emitter option. It always will be a multiple of the amount of emitters.
WARNING:
Be careful when you use the Per Emitter option! The particle count
set in the spinners is valid for every emitter and it is not divided
by all emitters. So, if you have 100 emitters and a particle Count
of 100 and you use the Per Emitter option, this can create 100x100=10.000
particles! 3ds Max may very well slow to a crawl if you don't respect
this potential for huge quantities of particles.
Per Emitter Activation checkbox
- When this checkbox is active, the number of particles emitted is controlled
by the number of emitters that are active at that moment in time. So if
you've set up a particle animation to emit based on an animated map color,
turning on the Per Emitter Activation checkbox will send the same number
of particles to each emission point as that point gets a true condition
for it's activation. This can also cause system slowdowns if you are not
careful, so use this option wisely.
Life Span (s) - The particle life setting within the MatterWaves
Operator uses Multi-Layer Particle Control technology to control the particle
life of each single particle. If no mask (material map) is used, all of
the particles get the same life time when they are born. This works like
with any other particle system, but MatterWaves goes one step further.
The Life Span(s) spinner sets the particle life to a specific amount of
time (measured in seconds).
Variation % - This spinner adds some random variation to the Life
Span (s) amount for each particle created by this operator. The value
represents a percentage value that is added/subtracted to the original
Life Span value. As an example, if the Life Span (s) spinner is set to
2 seconds and the Variation % spinner is set to 50, the resulting particle
system creates particles of maximum ages between 1 and 3 seconds.
Mask - The particle Life Span Mask controls the particle life
at the time of birth for each particle. A pure white value in the image
map or material creates particles that can get as old as you set in the
Life Span (s) spinner, while a pure black value in the image map or procedural
material will create particles with zero life time. You may animate the
image map or material to get a different life value for each particle
born.
The grayscale gradient is not used when there is no image map or material assigned to the Mask.
Life Span (s) Mask: A standard 3ds Max gradient material map (black = Zero Life Time)
Emitter Map: A standard 3ds Max bitmap (black = no emitters)
Object with material
Final rendered result
Speed - The particle speed
parameter can also be used to control the particle speed via MLPC technology.
Without the control of an image map or material, the Speed parameter sets
the particle speed to a specific minimum for every particle that is born
through MatterWaves.
Variation % - The Variation % spinner adds some random variation
to the Speed amount. This value is a percentage of Speed that is added/subtracted
to each particle.
Size Dep. checkbox - MatterWaves offers many unique features to
help the professional animator achieve the best results with minimum effort.
Great looking CG explosions with zillions of object chunks flying around
are really hard to do, especially if you want to make it look real. One
common problem all particle systems seem to have is the mathematically
perfect spherical expansion from the center of explosion. Even in outer
space with no gravity at all there wouldn't be a perfect spherical expansion
of the object chunks.
The MatterWaves Operator helps you to fake some real world science for
matter and motion, especially when you do particle explosions. Like in
the real world you need to make exploding objects accelerate based on
their mass and driving force (a bomb or whatever). While the MatterWaves
Operator is able to handle impulses or mass per particle (object fragments),
it may be a task that is way too expensive to compute. As such, MatterWaves
lets you simulate these effects by making the world of physics really
trivial and simple. Bigger objects usually have more mass and so they
need a higher force to start moving or accelerate. This may not be always
true in the real world (for example with giant blocks of Styrofoam) but
it's true for the MatterWaves Operator.
The Size Dep. parameter controls the size a particle/fragment must have
in order to achieve the velocity value that is set in the particle Speed
parameter. All particles/fragments bigger than Size Dep. move slower (based
on the size difference) and smaller particles will move faster. This feature
is great to simulate exploding objects with different fragment sizes.
Mask - The particle Speed Mask controls the particle velocity
at the time of birth for each particle. A pure white value in the image
map or material creates particles that can move as quickly as you set
in the Speed spinner, while a pure black value in the image map or procedural
material will create particles with no speed. You may animate the image
map or material to get a different speed value for each particle born.
NOTE: The grayscale gradient is not used when there is no image map or
material assigned to the Mask.
Motion Inheri % - When MatterWaves emits particles from static
objects, everything looks great. But what happens when you start to animate/move
the particle emitter around? Think about a good old locomotive under full
steam. The laws of physics tell us that the steam leaving the train's
smokestack will briefly have the same speed as the locomotive and so the
steam will travel along the motion vector of the locomotive. The Motion
Inheritance % spinner is designed to let you smoothly turn on the laws
of physics for your emitted particles. A value of 100% will give the particles
emitted from the moving object the exact same relative speed as the emitting
object has.
Variation % - The Variation % spinner adds some random variation
to the Motion Inheritance amount. This value is a percentage of Motion
Inheritance that is added/subtracted to each particle.
Rot. Inheri. % - In the same way that Motion Inheritance % spinner
affects positional dynamics, the Rotation Inheritance % spinner affects
the emitted particles' rotational values when the emitting object is rotating.
A value of 100% will give the particles emitted from the rotating object
the exact same rotational speed as the emitting object has.
Variation % - The Variation % spinner adds some random variation
to the Rotational Inheritance amount. This value represents a percentage
of Rotational Inheritance that is added to or subtracted from each particle.
Size - This animatable parameter specifies the size for all particles
in the system. The MatterWaves Operator assigns this Size value to all
particles born by this operator. Size is usually a world unit value.
Variation % - The Variation % spinner adds some random variation
to the Size of each born particle. This value represents a percentage
of the original Size that is added to or subtracted from each particle.
Var. Mask - The particle Size Mask controls the particle size
at the time of birth for each particle. A pure white value in the image
map or material creates particles that can be as large in size as you
set in the Size spinner, while a pure black value in the image map or
procedural material will create particles with no size. You may animate
the image map or material to get a different size value for each particle
born.
The grayscale gradient is not used when there is no image map or material assigned to the Mask.
Particle Size Layer Example:
Size Mask: A standard 3ds Max gradient material map (black = Zero Size)
Emitter Map: A standard 3ds Max bitmap (black = no emitters)
Object with material
Final rendered result with different particle sizes controlled by 1.
Emit Distance - The MatterWaves
Operator usually places all particle emitters direct on the object's surface
without any offset (Distance = 0.0). When the Emit Distance spinner value
is greater than zero, all emitters will be placed with that offset from
the object's surface. Numbers below zero will move the particle emitters
"below" the object's surface. The Distance value is set in world
units.
Variation % - The Variation % spinner adds some random variation
to the Distance offset of each born particle. This value represents a
percentage of the original Distance that is added to or subtracted from
each particle.
Var. Mask - The particle Emit Distance Mask controls the particle
placement relative to the object's surface at the time of birth for each
particle. A pure white value in the image map or material creates particles
that are placed at the offset distance as you set in the Emit Distance
spinner, while a pure black value in the image map or procedural material
will create particles with no offset. You may animate the image map or
material to get a different offset value for each particle born.
The grayscale gradient is not used when there is no image map or material assigned to the Mask.
![]() |
Normal - uses
the interpolated surface normal direction to offset the emitters. |
Random Seed - Change this
number to prevent all particles from behaving in the same way when you
use multiple MatterWaves Operators.
In Viewport [%] - It can be frustrating to wait for the particle
system to update the view to represent the current status. This parameter
controls the number of particles that should be visible in the viewport
for playback of your particle animations. A value of 100% means, that
all particles will be drawn and calculated for the display in the viewport.
Reduce this number to decrease the visible amount of particles in the
viewport.
This value has NO effect on what is rendered.

Emit Source - This display is used to tell you the name of the
object that is used to emit particles.
Mat. ID - Emitter placement on an object’s surface can be achieved
in many different ways. One easy and straightforward method used by the
MatterWaves Operator is emitter placement based on a specific Material
IDs. All faces with the same Material ID as set in Mat. ID spinner will
be used to create particle emitters. You MUST check the option to use
Material ID.
Sm. Group - Another cool way to control particle emitter placement
along an object’s surface is through the use of smoothing groups. The
MatterWaves Operator uses the mesh smoothing group information to place
emitters on the object’s surface. To use this option you must activate
the checkbox first.
Selected Face - Activate this checkbox to place particle emitters
on selected faces only.
FaceReduce - The Face Reduce spinner tells thinkingParticles to
use every Nth face when creating particle emitters on the object's surface
- so a FaceReduce value of 10 means that every 10th face is used to create
particle emitters on the selected object.
Coordinates - Activate this checkbox when you want to use UVW
mapping coordinates to place the particle emitters on the object. When
this value is set to 0, the mesh is used to define where the emitters
are placed, so every single triangle will get an emitter. Any other number
will set the UV Channel (0-99) that should be used to place the emitters.
The placement of the particle emitters is controlled by UVW Map modifiers.
The MatterWaves Operator places particle emitters evenly along the UV
Mapping space.
UVW Clipping - In some cases you will not want to use the full
UVW mapping area to create particle emitters. By default, the MatterWaves
Operator will always create particle emitters spread all over the object's
surface. This is also the case when the UVW Mapping area is smaller than
the object's surface (decal). Check this option to avoid such an effect.
Example: Imagine, a huge landscape made out of a dense quad patch object.
Within that area, you decide that only a small spot should generate particles.
Usually this situation would mean that you would need to increase the
number of UV Emitters towards the range of 10.000 so that you can be sure
to get some emitters near the desired spot on the landscape surface. Clip
UVW helps in solving this unwanted situation. Clip UVW creates particle
emitters in the designated UVW Mapping area only and not all over the
landscape object.
U/V Emitter - These two spinners let you define evenly spaced
particle emitters based on the UV coordinates used in each direction (U
and V). Be sure to note that when you use U Emitter=10 and V Emitter=10,
MatterWaves will create 100 particle emitters (10x10).
Random - The MatterWaves Operator will always try to evenly place
particle emitters along the object's surface. If you don't want this unvaried
look of particle emitters you may also change this particle emitter behavior
by activating the Random placement feature. When you check this option,
the positions of the particle emitters are varied by a certain amount.
Random U - defines the amount of random positioning in U direction
Random V - defines the amount of random positioning in V direction
Show - To visualize MatterWaves' particle emitters on the object's
surface you may check the Show button in the emitter rollout menu. Red
dots on the object's surface will appear that represent the particle emitter
points created by the MatterWaves Operator.
Use Active Emitter only - When you do not use the Active Emitter
Only feature, the MatterWaves Operator will distribute particles evenly
amongst all emitters available (active or not). This means, even when
you have 100 particles and have 30 emitters that are active (by light,
material or whatever) there is a good chance that each active emitter
will emit only a few particles and not 100 as set by the user. To avoid
this effect check the Use Active Emitter only button. This will make sure
that the number of particles are distributed amongst the active emitters
only.
Mode - By default the emit
direction for all particles created by the MatterWaves Operator is the
surface normal of each triangle. Besides this surface normal there are
many other options that can be used for the direction vector of the particles
when they are created by an emitter. Just as you can control the particle
size, speed or even age by an image map or procedural material, you can
also control the direction the particles move using materials.
You are presented with the following dropdown menu to choose from:

Normal - use this option to make MatterWaves use the interpolated
surface normal to emit particles.
Face Normal - MatterWaves uses the Face Normal setting by default.
Each particle emitter will use the surface normal to emit particles.
Helper Z-Direction - Helper or reference objects are really useful
when you want to control a whole mass of particles at once. The MatterWaves
Operator uses the reference object's transformation matrix to control
the particles' emit direction. Only the Z-Axis of the picked object is
used to calculate the emit direction of all particles.
Cylinder Helper - Select Cylinder Helper to make the MatterWaves
Operator use the reference object's transformation matrix to calculate
a cylindrical spread out effect. The reference object's position is used
to control the center of the spread out effect. The MatterWaves Operator
will always use the Z-axis of the reference object to create the cylindrical
effect.
Sphere Helper - Sphere Helper offers another way to control the
emit direction of each single particle. When this option is selected,
the MatterWaves Operator uses a radial emit direction for each single
particle created. The center of this spherical particle effect is supplied
by the reference object.
To Helper Position - All particles created by the emitters move
in a direct line to the reference object's center point. It's a very helpful
feature when you want to control a mass of particles.
The direction of travel for each single particle is initially set at the time of birth. If the reference object moves, newly born particles will also move into the new direction.
Helper Move Dir. - The MatterWaves
Operator also offers another reference object tracking feature to control
a mass of particles. The reference object's direction of travel and speed
is analyzed and applied to the particles. All particles use an inverted
movement vector, so that the particles travel in the opposite direction
from the reference object.
Helper Reflection - Helper Reflection uses the reference object's
position information to calculate a reflection vector for each single
particle created by MatterWaves. It works like a mirror: incoming angle
= negative outgoing angle.
Light Reflection - MatterWaves calculates the "light bounce"
vector for each particle when you select Light Reflection as the emitting
angle mode. If you use more than one light in a scene the averaged angle
between the lights is used.
Mask - Set the emit direction mode to Mask to control the emit
angle of each single particle an image or procedural material map is used
to control the emit angle of each single particle. To use this feature
you must also apply a map in the Dir. Mask parameter.
Ref. Object - The MatterWaves Operator may use reference objects
to control particle systems and particle movements. All calculations based
on reference objects are done once, at the time of particle birth. When
a particle is born it gets its initial speed and direction of travel based
on one of the several reference schemes as described above.
Left-Click the Pick Object button, this will enter the pick mode of the
MatterWaves Operator. Any legal 3ds Max object may be picked right from
within the main user interface.
Dir. Mask - The Direction Mask works in exactly the same way as
a bump map causes reflected highlights to change across an otherwise smooth
surface. The grayscale change between two pixels is used to calculate
the emit angle of each particle. This feature allows you to easily control
the direction of travel for all particles created by the emitters on the
object's surface. Right next to Dir.Mask you can find the grayscale threshold
value for the mask bitmap. A value of zero will create no angular change
( it's like when you set the bump amount to zero!) higher values will
create higher angular changes between pixel values.
Mask Intensity - This spinner works like a bump map vector multiplier
to increase the bump map directional effect and becomes active when mask
is selected.
Max Emit Angle - This spinner allows you to gain additional control
over the particle emitters on the object's surface. To use this feature
you must first have a reference object selected and you must make sure
that the Emit Direction Mode is NOT set to Face Normal.
Once set, particle emitters are created only when the angle between reference
object and surface normal is equal or below the Max Emit Angle value.
This option is best used on round or uneven surfaces. It is perfect for
creating Saturn-like planetary rings of particles.
Direction Var. Deg - The MatterWaves Operator is able to add random
directions to any emitted particle. This random direction amount is added
after everything has been processed by the MatterWaves Operator.
Use - Check the Use Material/Map
radio button to control particle emitters by material. When this option
is selected, the MatterWaves Operator will analyze the material and color
of the object to compare the result with the threshold particle emitter
value (default=0). All rendered pixels on the object's surface that fall
below this threshold value will turn off the relevant particle emitters
nearby.
Use Lights - To use light sources to control/create particle emitters
activate the Use Lights checkbox. In this case, the MatterWaves Operator
activates/generates particle emitters based on the amount of surface illumination.
You may also use a specific threshold to control the maximum amount of
illumination to be used to activate/generate a particle emitter.
Be aware that you can use both options (Material/Map, Lights) at the same time. If you use both options at the same time "Use Material/Map" will have highest priority. The map controls at which place particles are created and the light source (lighting) turns emitters on or off.
Material/Map - The use of
materials/maps to control particle emitters on an object's surface is
one of MatterWaves’ key features. When you check the Use Material/Map
button, the MatterWaves Operator will use the object's own material by
default. Nevertheless, one can also choose any other material/map to control
the particle emitters. To set a different material/map left-click onto
the gray square next to the material name or drop any image map or procedural
material map onto it.
REM. - To remove a light from the listbox, highlight it and then
click this button.
PICK - The MatterWaves Operator is also able to use lights to
control particle emitters! Usually there is more than one light in a 3D
scene and this is the reason why the MatterWaves Operator offers a Pick
Lights option. Left-click the Pick button and start selecting the desired
lights in the 3D scene. To remove a light from this list at any time,
select it from the list and left-click the REM. button.
Lights may affect the creation of particle emitters and also lights may
be used to activate the particle emitters to create particles when they
become lit.
Threshold - The Threshold parameter acts like a cut off value
that tells the MatterWaves Operator when to stop creating particles on
the objects surface. The Threshold number represents a pixel intensity
value created by the rendering system. Generally, brighter pixels (white)
have a higher intensity than darker (black) pixels.
Note, threshold is deactivated by default. It is only accessible when Use
Material/Map or Use Lights is checked! When Threshold is grayed out you
must select one of the options above first!
Color - When you activate this option (when the Use checkbox is
active), you can select a color from the swatch next to the checkbox to
test for the threshold on the surface of the emitter.
RGB Variation % - The MatterWaves Operator offers RGB Color tracking,
to offer even more control where particle emitters should appear on the
object’s surface. By default, the MatterWaves Operator places particle
emitters based on the material or map intensity values. Another way of
placing particle emitters is by RGB color tracking. Left-click the Color
radio button to activate the color swatch and the RGB Variation % parameter.
Drag or set any color value that should be tracked on the objects surface.
The RGB Variation % value represents the maximum color difference allowed
to create a particle emitter. This feature makes it possible to create
particles regardless of the intensity (threshold) values.
Note, Color and RGB Variation is grayed out (deactivated) by default. To
access this feature you must select Use Material/Map or Use Lights first.
Manual Update - We don't
know how much "timing pain" you can withstand, so we have built-in
this little emergency hook for you. Whenever you feel it's getting really
time consuming doing screen updates, turn Manual Update on and it's up
to you when a screen update happens. This option is valid for the viewport
only. Each button press on Update updates the screen view of the MatterWaves
particle system. The number next to Update represents the last frame when
Update was pressed.
Note, this feature may interfere with the Master DynamicSet setting “Edit on the Fly”.

P Axis - This set of radio buttons is enabled whenever you choose
any setting from the alignment dropdown menu but NONE. P-Axis sets the
particle's local axis that is used to align the particle when it is born.
Alignment of the particle's local axis is set in the dropdown menu underneath.
Invert - Invert is enabled whenever you select anything different
from NONE in the birth alignment dropdown list. Check INVERT when you
want to Use the negative particle axis as the alignment basis.
Rotation - Besides the various options that enable you to control
the initial alignment of a particle when it’s born, you may also set a
specific angle by changing this parameter.
This dropdown list offers various options how the MatterWaves Operator
aligns the particle when it’s born. All options are relative to the local
particle axis as it is set in the P-Axis section.
Variation - To add some
angular variation to the particle birth alignment increase this value.
Higher numbers create more visible variation. This value represents an
angle that is added or subtracted to the birth alignment value.
User Axis - Whenever User Defined is selected in the birth alignment
drop down list, the User Axis spinners are activated. You may align any
three axis, together or individually, with the local particle axis.

Color - This spinner defines the Data Channel number that should
be written. -1 means no Data Channel is written. The Color comes from
the surface color the emitter is placed on (used to decide to activate
an emitter).
UVW - The first spinner is the UVW channel within 3ds Max, and
the second spinner defines the Data Channel number. The UVW Coordinate
comes from the surface position where the emitter is placed on.
Object Position - This spinner defines the Data Channel number
that should be written. -1 means no data channel is written. The position
represents the emitter position in object space.
World Position - This spinner defines the Data Channel number
that should be written. -1 means no data channel is written. The position
represents the emitter position in world space.